package com.cgsd.heyu.presenter.user;


import com.cgsd.heyu.common.UserModeConfig;
import com.cgsd.heyu.entity.AdContentEntity;
import com.cgsd.heyu.entity.DefaultAvatarEntity;
import com.cgsd.heyu.presenter.BasePresenter;
import com.cgsd.heyu.presenter.BaseView;

import java.util.List;

/**
 * @author xiaoxing
 * 用户相关
 */
public interface UserContract {

    /**
     * 用户相关数据获取
     */
    interface  Presenter extends BasePresenter {
        /**
         * 登录
         * @param mobile 电话
         * @param password 密码
         */

        void userLogin(String mobile,String password,String deviceId);

        /**
         * 登录注册
         * @param mobile 电话号码
         * @param verifyCode 验证码
         * @param address 地址
         * @param interviewCode 邀请码
         * @param password 密码
         */
        void register(String mobile, String verifyCode,String address,String interviewCode,String password);

        /**
         * 获取验证码
         * @param mobile 手机号
         * @param messageType 短信验证码类型，1 注册  2 登录 3 忘记密码
         */
        void getVerificationCode(String mobile,String messageType);

        /**
         * 修改用户信息
         * @param userModeConfig 修改数据
         */
        void updateInfo(UserModeConfig userModeConfig);

        /**
         * 获取用户信息
         */
        void getUserInfo();

        /**
         * 获取app配置数据
         * @param type 类型
         * @param size 个数
         */
        void getConfigInfo(String type,int size);

        /**
         * 上传图片
         * @param files 图片数组
         * @param keys 七牛云的key（文件名）
         */
        void uploadImage(List<String> files,List<String> keys);

        /**
         * 上传多媒体
         * @param files 多媒体数组
         * @param keys 七牛云的key（文件名）
         */
        void uploadMultiMedia(List<String> files,List<String> keys);

        /**
         * 问题反馈
         * @param images 图片地址
         * @param content 反馈内容
         */
        void feedBack(List<String> images,String content);

        /**
         * 退出登录
         * @param type 1登出，2注销账户
         */
        void signOut(String type);

        /**
         * 获取广告
         * @param type
         */
        void getAdContent(String type);

        /**
         * 根据key查询业务
         * @param key
         */
        void getKeyConfig(String key);

        /**
         * 获取用户默认头像
         */
        void getDefaultAvatar();

        /**
         * 修改密码
         * @param mobileNo 手机号
         * @param password 修改密码
         * @param verificationCode 验证码
         */
        void updatePassword(String mobileNo,String password,String verificationCode);
    }

    /**
     * 登陆（view更新）
     * {@link com.cgsd.heyu.ui.home.MainActivity}
     */
    interface LoginView extends BaseView<Presenter> {
        /**
         * 发送验证码成功
         */
        void codeSuccess();
        /**
         * 登录成功
         */
        void loginSuccess(UserModeConfig UserModeConfig);

    }

    /**
     * 个人信息修改
     * {@link com.cgsd.heyu.ui.login.AvatarSelectActivity}
     * {@link com.cgsd.heyu.ui.info.InformationActivity}
     */
    interface UpdateInfoView extends BaseView<Presenter> {
        /**
         * 修改头像成功
         */
        void updateAvatarSuccess();
        /**
         * 修改昵称成功
         */
        void updateNickNameSuccess();
        /**
         * 修改性别成功
         */
        void updateSexSuccess();
        /**
         * 用户默认头像
         * @param entities
         */
        void userAvatarList(List<DefaultAvatarEntity> entities);
    }

    /**
     * 获取用户信息
     * {@link com.cgsd.heyu.ui.home.SplashActivity}
     */
    interface UserInfoView extends BaseView<Presenter> {
        /**
         * 用户信息
         * @param userModeConfig 返回数据
         */
        void infoSuccess(UserModeConfig userModeConfig);
        /**
         * 配置成功
         * @param sysType
         */
        void setConfig(String sysType);
        /**
         * 广告数据
         * @param entity
         */
        void setAdContent(AdContentEntity entity);
    }

    /**
     * 设置页面数据
     * {@link com.cgsd.heyu.ui.info.SettingActivity}
     */
    interface SettingView extends BaseView<Presenter> {
        /**
         * 退出登录成功
         * @param type
         */
        void signOutSuccess(String type);
    }

    /**
     * 举报页面
     * {@link com.cgsd.heyu.ui.info.FeedBackActivity}
     */
    interface FeedBackView extends BaseView<Presenter> {
        /**
         * 图片上传成功
         * @param key 上传成功key(图片名字)
         */
        void uploadImageSuccess(String key);
        /**
         * 反馈成功
         */
        void feedBackSuccess();
    }

}
